草庐IT

java - 测试分布

全部标签

routing - 分布式负载转发

我正在尝试设计一个将部署在AWS不同区域的分布式应用程序。这个想法是,用户离部署区域越近,延迟就越低。我的问题是,当预期接收者位于区域B时,是否有任何论文、设计模式或算法可以可靠地将从区域A发出的请求转发到区域B。这意味着区域A中的用户只会触发请求,但实际交易是从区域B中的用户到部署在那里的应用程序。因此负载将被路由,其余的处理将在接收者端发生。希望我说得有道理,但如果它有助于思考,我想到的一个例子是录音。它不会将流媒体从区域A定向到B,而是先复制到区域B,然后从那里流式传输给用户。 最佳答案 如果您要使用geo-dns(我认为AW

heroku - 在 heroku 上运行 golang 测试

我或多或少地按照这些说明将我的应用程序部署到heroku。一切正常。http://mmcgrana.github.io/2012/09/getting-started-with-go-on-heroku.html我有一些基准测试,我想在heroku上运行,以测试我的本地机器和heroku机器之间的性能是否存在差异。不幸的是我不知道如何运行它们(heroku找不到go可执行文件)。可以这样做吗?谢谢! 最佳答案 我没有用过Heroku。Heroku可能在使用gotest命令运行基准测试时遇到问题;临时目录可能有问题。Commandgo

go - 如何测试实现 gorilla 上下文的函数

我写了一个将数据保存到redis数据库服务器的函数。挑战是我想测试这些功能,但不知道如何测试。我只是以某种方式开始函数packagesessrage/**Savedataintoredisdatabase.Inthecommoncase,*thedatawillbeonlyvalidduringarequest.Use*hashdatatypeinredis.*/import("../context""github.com/garyburd/redigo/redis""net/http")const(protocolstring="tcp"portstring=":6379")func

go - 无法在 main 以外的包内调用测试

我正在为我的go代码和发件人文件夹内部编写测试,发件人包我添加了exposed_api_test.go(也尝试了exposed_api_test.go因为我有代码exposed_api.go)packagesenderimport("log""testing""github.com/stretchr/testify/assert")funcTestTimeConsuming(t*testing.T){assert.Equal(t,"test","test1")}当我运行构建并运行命令gotestmy_project我得到?my_project[无测试文件]当我将测试从这个包中取出时(在

go - os.OpenFile 权限问题在测试中

我目前遇到了os.OpenFile的问题。当我运行我的go测试时,它只是给我“权限被拒绝”。typelogstruct{MessagestringSourcestringTimestamptime.TimeErrorCodeErrorCode}typeErrorCodeintconst(InfoErrorCode=1+iotaWarningError)func(errorCodeErrorCode)String()string{switcherrorCode{caseInfo:return"Info"caseWarning:return"Warning"caseError:return

testing - 带 channel 的 Golang 测试不退出

下面的Golang测试永远不会退出。我怀疑这与channel死锁有关,但作为一个菜鸟,我不太确定。constuserName="xxxxxxxxxxxx"funcTestSynchroninze(t*testing.T){c,err:=channel.New(github.ChannelName,authToken)iferr!=nil{t.Fatalf("Couldnotcreatechannel:%s",err)return}state:=channel.NewState(nil)ctx:=context.Background()ctx=context.WithValue(ctx,

testing - Golang NewRequest 将 POST 参数传递给 API 进行测试

这是我的测试方法,它创建一个新请求并传递POST参数。url1:="/api/addprospect"data:=url.Values{}data.Add("customer_name","value")b:=bytes.NewBuffer([]byte(data.Encode()))request,err:=http.NewRequest("POST",serverHttp.URL+url1,b)res,err:=http.DefaultClient.Do(request)问题是POSTparam没有被url的函数处理程序获取。你能帮我设置正确的请求吗?谢谢

testing - 针对 xml/字符串测试失败的自定义 testify 输出

我正在使用testify测试XML编码(marshal)处理,并使用strings.Contains检查我希望包含在XML中的行是否确实存在。但是,我想区分实际xml与所需xml。目前,我的代码看起来像这样:func(suite*BookSuite)TestXMLMarshal(){priceXML,priceErr:=xml.Marshal(PriceType{Price:10,Type:"IND"})suite.Nil(priceErr)linePresent:=strings.Contains(string(priceXML),``)iftrue!=linePresent{err

go - 基准测试仅显示 100%

我刚刚进行了1000万次插入基准测试,以查看我正在构建的小型缓存系统的性能。在观察事件监视器时,我注意到mainGo进程只显示100%(800%的)CPU。我是否需要将我的循环拆分为例程以使其拆分为所有8个内核,还是有其他原因?我没有发布代码,因为测试代码只不过是主体中测试函数中的一个循环。 最佳答案 您的应用程序仅使用一个线程,因此只有一个核心以100%运行是正确的。如果你想使用多个核心,你必须使用多个go例程,记住设置GOMAXPROCSshell环境,否则你的应用程序将只使用一个核心。请记住,您的应用程序使用多个进程可能会更慢

unit-testing - 如何为测试目的重新定义/模拟 Go 中的方法?

我正在为Go库创建测试。我发现了一个错误:cannotassignto我有以下代码(https://play.golang.org/p/kf0gANb-p-):packagemainimport("bytes""fmt""os/exec""strconv""strings")const(CONSOLE="dialog"KDE="kdialog"GTK="gtkdialog"X="Xdialog"DIALOG_TEST_ENV="test_env"AUTO="auto")const(DIALOG_ERR_CANCEL="exitstatus1"DIALOG_ERR_HELP="exits